Isso é quest de segunda promotion?
- Fórum
- OTServ
- Pedidos
- Resolvidos
- [Resolvido] PEDIDO NPC QUE VENDA PROMOTION POR ITEM
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian

info
Grupo: Visconde
Registrado: 11/04/15
Posts: 351
Reputação: +205
Gênero: Masculino

procure elseif(doPlayerRemoveMoney(cid, parameters.cost, 1) ~= TRUE) then em data/npc/lib/npcsystem/modules.lua e muda a função doPlayerRemoveMoney para doPlayerRemoveItem apos feito isso e so por no script do npc em cost = 2000 o ID do item no 2000 que sera resolvido, isso e so um gato da pra deixar mais organizado.
info
Grupo: Visconde
Registrado: 26/08/10
Posts: 431
Reputação: +60
Gênero: Masculino
Char no Tibia: Gabriel Rookgaardian

Ta ai:
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local storage = 1111514 --storage da quest function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "promotion") then if getPlayerStorageValue(cid, storage) == -1 then selfSay("Então você quer ser promovido? Bem, você terá que me trazer 5 {nome do item}, você aceita?", cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, storage) == 1 then selfSay("Você trouxe os itens?", cid) talkState[talkUser] = 1 else selfSay("Você já está promovido, jovem.", cid) end npcHandler:addFocus(cid) end if msgcontains(msg, "yes") and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage) == -1 then selfSay("Ok. Retorne quando você tiver juntados os itens.", cid) setPlayerStorageValue(cid, storage, 1) elseif getPlayerStorageValue(cid, storage) == 1 then if doPlayerRemoveItem(cid, 7722, 5) then selfSay("Que ótimo. Você está promovido.", cid) doPlayerSetPromotionLevel(cid, 1) --se for quest de segunda promotion, mude o valor '1' pra '2' doPlayerAddItem(cid, 2160, 10) --ta ganhando 10 crystal coin, se não quiser, basta apagar a linha ou mudar item e/ou quantidade setPlayerStorageValue(cid, storage, 2) else selfSay("Está tentando me enganar? Você não tem os itens nescessários", cid) end elseif msgcontains(msg, "no") and talkState[talkUser] == 1 then selfSay("Então porque veio até mim?", cid) talkState[talkUser] = 0 end return true end end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Se for quest de segunda promotion, pra não ficar perdendo ela quando desloga, em fromvoc="XX", você tem que por o valor da ID da promotion anterior. Por exemplo: Se você fez uma promotion de sorc chamada Supreme Sorcerer, na tag dela, em fromvoc="XX", deve ficar fromvoc="5", que é o ID correspondente a promotion Master Sorcerer.
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino



info
Grupo: Campones
Registrado: 13/03/18
Posts: 8
Reputação: 0
Gênero: Masculino
Estou precisando de um NPC que troque item por promotion. Já tentei fazer mas sempre quando relogo o char, a promotion some. Uso o seguinte script.
ID do item é 7722 e serão necessários 5 deste.